/**
 * 部门管理 API
 */

import { get, post } from './request'

/**
 * 部门信息类型
 */
export interface DeptInfo {
  id: number // 部门ID
  deptName: string // 部门名称
  companyId: number // 所属单位ID
  companyName?: string // 所属单位名称
  leaderId?: number // 负责人ID
  leaderName?: string // 负责人姓名
  parentId?: number // 上级部门ID
  orderNum?: number // 排序
  status: number // 状态：1-正常 0-禁用
  remark?: string // 备注
}

/**
 * 部门查询参数
 */
export interface DeptQueryDTO {
  companyId?: number // 所属单位ID
  deptName?: string // 部门名称（模糊查询）
  status?: number // 状态：1-正常 0-禁用
  parentId?: number // 上级部门ID
}

/**
 * 获取部门列表（不分页）
 * @param params 查询参数
 * @returns Promise 返回部门列表
 */
export function getDeptList(params?: DeptQueryDTO) {
  return get('/system/depts', params || {})
}

/**
 * 根据单位ID获取部门列表
 * @param companyId 单位ID
 * @returns Promise 返回部门列表
 */
export function getDeptListByCompanyId(companyId: number) {
  return getDeptList({ companyId, status: 1 })
}

/**
 * 根据ID获取部门详情
 * @param id 部门ID
 * @returns Promise 返回部门详情
 */
export function getDeptById(id: number) {
  return get(`/system/depts/${id}`)
}
